using System; using System.Collections.Generic; using System.Linq; using System.Text; using Microsoft.Xna.Framework; namespace SuperPolarity { class BasicGenerator { public enum Ships : byte { Ship, Scout, Battlecruiser }; protected Ships ShipType; protected SuperPolarity Game; protected int ScoreThreshold; protected int Rate; protected int CurrentTime; protected Random Randomizer; protected Vector2 Position; public void Initialize(SuperPolarity game, Vector2 position, Ships shipType, int rate, int scoreThreshold) { Game = game; ShipType = shipType; ScoreThreshold = scoreThreshold; Rate = rate; Randomizer = new Random(); Position = position; } public void Update(GameTime gameTime) { if (Game.Player.Score > ScoreThreshold) { CurrentTime = CurrentTime + gameTime.ElapsedGameTime.Milliseconds; if (CurrentTime >= Rate) { CurrentTime = 0; Spawn(); } } } protected void Spawn() { var polarity = Ship.Polarity.Positive; if (Randomizer.Next(2) == 1) { polarity = Ship.Polarity.Negative; } if (ShipType == Ships.Ship) { ActorFactory.CreateShip(polarity, Position); } if (ShipType == Ships.Scout) { ActorFactory.CreateScout(polarity, Position); } if (ShipType == Ships.Battlecruiser) { ActorFactory.CreateCruiser(polarity, Position); } } } }